<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        /*
            1. async修饰的函数
                    函数返回值为promise对象
                    promise实例的结果由async函数执行的返回值决定

            2. await表达式
                    await右侧的表达式一般为promise实例对象，但也可以是其他的值
                    如果表达式是promise对象，await后的返回值是promise成功的值
                    如果表达式是其他的值，直接将此值作为await的返回值

            3.注意
                    await必须写在async函数中，但是async函数中是可以没有await的
                    如果await的promise失败了，就会抛出异常，需要通过try...catch来捕获处理
            
            简单粗暴的理解：async其实就像一个副作用一样，我们很多时候用它只是因为我们想用await
        */
       async function demo(){
            return 100
       }

       (async ()=>{
        let res1= await demo()
        console.log(res1);//100
       })()
    </script>
</body>
</html>